Robots have found wide application in many areas of industry. Some industrial areas involve labor dangerous to human health or labor performed under conditions not possible for humans to withstand. Other areas of industry involve repetitive tasks which can be performed much more efficiently and precisely by a robot.
Most industrial robots comprise a manipulator devised to manipulate materials, where the manipulator usually has an arm-like mechanism consisting of a series of segments, each referred to as a link in the following. Movement of the manipulator can either be effected manually by an operator or automatically by performing instructions according to a user program that defines the robot task. In the latter case the manipulator is controlled by the user program loaded or entered into a controller to reach a programmed pose (position and orientation for desired end-effector placement). The controller is the part of the robot that controls the movement of the manipulator by actuation of the link motions via motors, drive-trains and jointed mechanical arrangements forming a mechanism with a certain kinematic structure.
The number of independent parameters that determine a positional state of a rigid body (a stiff link) or of a mechanism is referred to as the Degree Of Freedom (DOF, also used in plural for Degrees Of Freedom). A free rigid body in 3-dimensional (Euclidian) space has 6 DOF (three translational and three rotational). A rigid or stiff link comprises such a rigid body. Each kinematic pair of links is connected via a joint that is usually sliding (the joint may then also be called prismatic, linear, or translational joint) or jointed (the joint may then also be called revolute or rotational joint). One such joint constrains five out of the six possible DOF of one link relative to the other one in the pair of links, which in a non-singular configuration of the manipulator adds one DOF to the final link (ending with a tool-mounting end-flange) of the manipulator. By means of its kinematic structure of links and joints, the DOF of the manipulator (manipulator-DOF) can be considered as being the minimum number of coordinates required to specify a kinematic configuration.
Since a tool, referred to as an end-effector of the robot (or equivalently a tool changer permitting changes of end-effector manually or without manual assistance), is another physical body to be moved in Euclidian space, 6 DOF manipulators are most common since they comprise the minimum for full movability of the end-effector, which for a normal non-singular configuration requires 6 of the above mentioned joints. Other types of joints such as spherical and cylindrical joints also exist, but these can be seen as combinations of the above mentioned more simple joints, and are referred to as joints in the following. Joints can as mentioned be rotational or translational, but both cases are equivalently covered in the following. This corresponds to the established notion of generalized joint coordinates in the robotics literature. The manipulator-DOF joint coordinates define the kinematic configuration, which also defines the end-effector pose but possibly not uniquely.
A joint is typically actuated by a feedback-controlled motor via a drive train including gears for reducing the motor rotations to lower-speed joint rotations. The drive train then basically is a transmission, but we assume an ideal motor and any relevant actuator/motor dynamics is included in the drive train. The drive train is avoided in a so called direct-drive joint, but due to practical and fundamental problems with direct drives almost all robots are built with a drive train for each joint. The following description, however, also covers direct drive joints, being the special case of a known and ideal drive train with gear ratio one. It is here referred to the typical arrangement of a joint and link, including its motor for actuation and any drive train, as being an axis (plural: axes).
The complete kinematic structure of a manipulator often includes internal joint kinematics when joint motions are coupled inside the manipulator, which is very common for wrist motions as is the case for Axis 5 and Axis 6 of the manipulator 2 in FIG. 1. While the internal joint kinematics can be relevant for the practices of the current invention, we can ignore it in the following since the principles of the current invention deals with the motions following the joint torques as if each joint would have been of the direct-drive type. Hence, by kinematics we here refer to the joints and links forming the arm structure of the manipulator.
The mentioned usual arm-like mechanism comprising a manipulator typically means a pure serial kinematic manipulator or mechanism (SKM, in the literature referring to the equivalent notion of a serial-kinematic machine), meaning that each link is followed by a joint and then the next link forming a serial chain from the foot (or mobile base) of the robot to the end-flange. Alternatively, links can also be arranged in parallel, thereby forming a parallel-kinematic manipulator (PKM). A vast number of combinations of SKM and PKM structures can be built.
In robot applications, such as those for industrial robots in manufacturing, it is highly desirable that the resulting physical pose, within certain tolerances, agrees with the programmed pose. To support efficient specification of poses for the end-effector, either manually or in the user program and possibly from CAD data, the controller therefore contains a kinematic model of the manipulator. The kinematic model includes the joints and the links and their geometric relations of the manipulator, assuming those parts comprising rigid bodies. Since manipulators are not quite rigid, there will be deflections due to mass and process forces resulting in a deviation at the location of the end effector. A deviation between the programmed pose and the physical pose, can be at a single location or at a multitude of locations along a path, or at any use of the robot. Managing deviations by the user via adjustments in the user program or by teach-in of slightly deviating programmed poses, limits the reuse of robot tasks and increases the cost for robot programming and deployment.
During the first decades of robotics the major deviations were due to deficient control such as inadequate trajectory generation (e.g., not considering joint torque saturations) and too primitive feedforward compensation (e.g., with path errors resulting from joint servo control errors). Knowing detailed manipulator parameters would not have been useful in early systems since there were no control functions utilizing them. The extensive use of model-based control thereafter, utilizing knowledge about the manipulator properties to optimize the control, resulted in great performance improvements and robots that approximately performed as programmed from the mid-1980s and onwards. Still, robots deviate from their programmed motion due to missing control compensation of several specific manipulator properties. A modern controller typically has a suitable structure and functionality for such compensation but lacks the actual robot specific data due to missing practical methods for obtaining and maintaining that data. There is thus a need to deal with these deviations in order to obtain as little deviation as possible from the programmed pose, and thereby a need for a practical method for determining the related manipulator properties.
There are several causes for deviations from the programmed pose. One cause may be inaccuracies in the link and joint geometries, i.e. due to kinematic errors. Kinematic errors can be managed by kinematic calibration, which is usually available from the robot manufacturer. Another cause of deviations is related to inaccuracies in the joint and arm mechanics and/or control of the arm dynamics during high-speed motion, such as torque saturation due to joint-wise or multibody effects. Normally, such deviations are managed by model-based control provided by the robot manufacturer. Yet another cause of deviations from a programmed pose stems from inaccuracies due to force interaction between the end-effector of the manipulator and the workpiece, but also due to gravity and other forces acting upon the manipulator. Such deviations are also related to joint dynamics around or along the joint motion due to tolerances of bearings and other joint parts.
Light-weight robots and dexterous robots with highly optimized control are becoming more popular for industrial applications. This puts new demands on the model based control since another source of deviations is deflection due to compliance of the manipulator links. A compliant link may be defined as a non-rigid link, i.e. a link displaying some degree of elasticity. A further source of deviations is the compliance of the manipulator joints in directions other than in the direction of the joint rotation, such as in a direction orthogonal to the direction of joint rotation. Industrial robots have much higher compliance than conventional machine tools for machining operations. This gives higher requirements on an elasticity model of the robot to calculate the actual tool center point (TCP) position when forces are acting on the robot.
Attempts have been made to develop a model of link and joint compliance using a quasi-static and dynamic model of a manipulator, such as described in “Modeling and control of flexible manipulators” by Moberg S. published in 2010. The publication characterizes compliant joints as a spring-mass system 25 with four links Link 1-Link 4, three motors M1-M3 and different masses and spring constants as illustrated in FIG. 2. Link elasticity is then modeled by means of a stiffness matrix. However, as Moberg readily admits, modelling the number of non-actuated joints and their locations is not obvious. (Mobergs reference to non-actuated joints will in the following be captured by our more general concept of elastic-DOF representing joints and links that can be deformed according to elasticity models.)
Several types of solutions exist which deal with some types of deviations mentioned earlier, where optical systems for pose measurements and tracking are the most common. Such systems, referred to as external calibration systems, can be used for online compensation of the end-effector motions without parameters for the sources of deviations, or they can be used to calibrate the parameters of the kinematic model. Although a calibration system of today does not capture parameters describing deflections due to force, high-end robots in common application are comparably stiff and therefore useful. In many other cases, either robots are less stiff or the application requirements on accuracy are more demanding, and external sensing or improved compensation is highly desirable. While applicable to large scale production facilities with a large number of robots, the cost of the mentioned external calibration system often exceeds the cost of a single robot. In smaller scale production facilities relying on the operation of one or a few robots, such external calibration systems are not applicable due to prohibitive cost. One example of an external calibration system is described in WO9912082. In addition to calibration, external sensors detecting torque or position of the joints or the tool exchanger can be used to improve robustness against unknown variation in the manipulator or in the manufacturing process, in case there is a force interaction between the tool and the workpiece.
Another approach to calibration is presented in the article “Kinematic Calibration by Direct estimation of the Jacobian Matrix” by Bennet, Hollerbach and Henri presented at ICRA, 1992, in Nice, France. In the article parameters in a Jacobian matrix of a robot are estimated by first clamping the robot in a predefined pose and then actuating the joints of the robot. Based on information from an external force/torque sensor attached to the end-link close to the point of clamping, the unknown kinematic parameters can then be determined. The Jacobian matrix expresses the dependency between endpoint velocities and joint velocities, or correspondingly for the forces/torques. Data obtained from a set of such actuations result in a set of such matrices, which are used to calculate the kinematic parameters. Even with kinematic calibration being performed, also with the force/torque based method neglecting the actuator-to-joint dynamics, deviations due to dynamic forces and force interactions with the workpiece remain.
Thus, determination of the coefficients of a stiffness matrix described by Moberg using conventional manipulator calibration systems as described earlier is either non-trivial or such calibrations systems are simply not designed to measure and compensate link compliance and joint compliance along other directions than the primary direction.
The article “Cartesian compliance model for industrial robots using virtual joints” by E. Abele et al, Prod. Eng. Res. Devel., 2008, describes modeling of a robot structure and identification of its parameters. In FIG. 3a, a common approach of an elementary joint 30 is illustrated where a twist between the drive side (θz) and the output side of the gear (q2) is illustrated, which applies if the overall elasticity can be mainly attributed to the elasticity of the gears. The robot links and the connection from joint to link are considered inflexible. In FIG. 3b, a virtual joint 31 is illustrated with two more DOF than the elementary joint in FIG. 3a, and thereby compliance in two more DOF can be considered when establishing a model of the robot structure. However, to be able to measure the joint compliance, only one joint at a time is loaded. That is, while measuring axis (i) all axes from the base to the preceeding axis (i−1) have to be clamped, with the identified axis as the first freely moving joint, thus giving a rather time consuming process of determining any compliance of the robot.
Hence, for the purpose of reducing deviations by compensation based on calibrated models including compliance, the limitations of existing technology implies a need for a more accurate, simple and inexpensive way of determining such robot link and joint parameters.